package com.johnny.myRedis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class JedisPoolUtil {

   private static  volatile JedisPool jedisPool = null;

    private  JedisPoolUtil(){

    }

    public static JedisPool getJedisPoolInstance(){
        if(null==jedisPool){
            synchronized (JedisPoolUtil.class){
                if(null == jedisPool){
                    JedisPoolConfig poolConfig = new JedisPoolConfig();
                    poolConfig.setMaxTotal(1000); //控制一个pool可以分配多少个实例
                    poolConfig.setMaxIdle(32);   //控制一个pool最多有多少个idle(空闲)的是实例
                    poolConfig.setMaxWaitMillis(100*1000);//表示当borrow一个jedis实例时，最大的等待时间，超过时间抛异常
                   // poolConfig.setTestOnBorrow(true); //获得一个jedis实例的时候是否检查连接可用性(ping()),如果为true,则表示可用
                    jedisPool = new JedisPool(poolConfig,"192.168.99.100", 6379);
                }
            }
        }
        return jedisPool;
    }

    public static void release( Jedis jedis){
        if(null !=jedis){
             jedis.close();
        }
    }
}
